package dragon.core.io;

import java.util.Comparator;

import dragon.core.util.GlobalParameter;

/**
 * 用于给逻辑文件排序
 */
@SuppressWarnings("rawtypes")
public class LogicFileSort implements Comparator {

	@Override
	public int compare(Object o1, Object o2) {
		LogicFile lf1 = (LogicFile) o1;
		LogicFile lf2 = (LogicFile) o2;
		if (!lf1.isFolder() && !lf2.isFolder()) {
			// 都是文件(cfg文件默认排在最前)
			if (lf1.getName().endsWith(GlobalParameter.CompressedFilePostfix)) {
				return -1;
			} else if (lf2.getName().endsWith(GlobalParameter.CompressedFilePostfix)) {
				return 1;
			} else {
				return lf1.getName().toLowerCase().compareTo(lf2.getName().toLowerCase());
			}
		} else if (lf1.isFolder() && lf2.isFolder()) {
			// 都是文件夹
			return lf1.getName().toLowerCase().compareTo(lf2.getName().toLowerCase());
		} else {
			// 一个文件，一个文件夹
			if (lf1.isFolder()) {
				return -1;
			} else {
				return 1;
			}
		}

	}

}
